/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright(c) 2020 - 2023 Allwinner Technology Co.,Ltd. All rights reserved. */
/*
 ********************************************************************************************************************
 *
 * Allwinner SoCs display driver.
 *
 * Copyright (C) 2016 Allwinner.
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 *
 * Melis
 * the Easy Portable/Player Operation System
 * (c) Copyright 2012-2020
 * All	Rights Reserved
 *
 * File    :
 * By      : libaiao
 * Version : v1.00
 * Data    :
 * Note    : eink Device control timing data and waveform data
 * Version : v2.00
 * By      : liuli
 * Note    : eink The device control timing data and waveform data have been separated, and now only the timing data is stored
 **********************************************************************************************************************
 */

#include "include/timing_ctrl.h"

static struct timing_ctrl_manager *g_timing_ctrl_mgr;

struct timing_ctrl_manager *get_timing_ctrl_mgr(void)
{
	return g_timing_ctrl_mgr;
}

const __u32 eink_ctrl_line_index_tbl[EINK_LCD_H + 1] = {

	0,  0,  0,  0,  0,                      /* line1--line5 */
	1,                                      /* line6 */
	2,                                      /* line7 */
	3,                                      /* line8 */
	3,                                      /* line9(Solve the problem of less than one line displayed on the right) */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* line9--line608,all 600 line600 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 100 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 200 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 300 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 400 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 500 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 600 */

	#if (EINK_PANEL_H >= 758)
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 700 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */

	4,  4,  4,  4,  4,  4,  4,  4,          /* 6 , 758 */
	#endif

	#if (EINK_PANEL_H >= 1080)
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 600 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 958 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 1058 */

	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1068 */
	4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1078 */
	4,  4,                                       /* 1080 */

	#endif
	4, 5,					   /* line609 */

	6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  /* line610--line620 */
};

/* NEW_CTRL_DATA */
const __u32 eink_ctrl_tbl_GC16_COMMON[8][EINK_WF_WIDTH] = {

/* line1--line5; all 5 line */
/* 1         2       3           4       5           6       7       8       9          10 */
{0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,

#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,
#endif

	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,
	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303,  0xA00000|0xFF030303,

	0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303, 0xA00000|0xFF030303
},


/* line6 */
/* 1         2       3           4        5           6       7       8       9          10 */
{0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
							      /* $14 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

/* 1         2       3           4       5           6       7       $108       9          10 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,


#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,

	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,

0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,

0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,

#endif

	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,

/* 1         2       3           4       5           6       7       8       9          10 */
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,

/* 1        2       3           4       $215           6       7       8       9          10 */
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303,  0x208000|0xff030303,
	0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303,  0x208000|0xff030303,
	0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303,  0x208000|0xff030303,
	0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303,  0x208000|0xff030303,

	0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303, 0x208000|0xff030303
},

/* line7 */
/* 1         2       3           4       5           6       7       8       9          10 */
{0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,
	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303,  0x608000|0xff030303,


	0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0x608000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,

#endif

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,


/* 1         2       3           2          4        2         5          2           6        2         7         2        8          2       9            2        10         2                     2 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

/* 1         2       3           2          4        2         $215       2              6     2            7      2        8          2       9            2         10        2                     2 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303
},


/* line8 */
/* 1         2       3           4       5           6       7       8       9          10 */
{0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,


	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,

#endif

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,


/* 1         2       3           2          4        2         5          2           6        2         7         2        8          2       9            2        10         2                     2 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

/* 1         2       3           2          4        2         $215       2              6     2            7      2           8       2          9         2           10      2                     2 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303

},

/* line9-line608, all 600 line */
/* 1         2       3           4       5           6       7       8       9          10 */
{0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303, 0xE0A000|0xff030303,  0xE0A000|0xff030303,

/* 1         2       $13         2          $14      2           $15      2           6        2         7         2        8          2       $19          2          10       2                     2 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xF08000|0xff030303, 0xD08000|0xff030303, 0xD08000|0xff030303, 0xD08000|0xff030303, 0xD08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,


	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,

	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,

	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,
#endif



	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,


/* 1         2       3           2          4        2         5          2           6        2         7         2        8          2       9            2        10         2                     2 */
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303,  0xF08000|0xff030303,
/* 211       212     213         212        214      212       215        212        216       212      217        212      218        212     219          212        210      212                   212 */
	0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xF08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303,  0xB08000|0xff030303,
	0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303,  0xB08000|0xff030303,
	0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303,  0xB08000|0xff030303,
	0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303,  0xB08000|0xff030303,

/* 251       252     253         252        254      252       255        252        $256      252       257       252       258       252                  252                 252                   252 */
	0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xB08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303

},

/* The above are valid data lines */


/* The following is the end of the field */
/* line609 */
/* 1         2       3           4       $5           6       7       8       9          10 */
{0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,


	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,
#endif

	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,


/* 1        2       3           2       3  4        2       3 5          2       3   6        2       3 $7        2       3 8         2       39           2       3 10        2       3             2       3 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303,  0xE08000|0xff030303,

/* 21        212     213         212        214      212       215        212          216     212        217      212       218       212       219        212        210      212                   212 */
	0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xE08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303
},

/* line610-620 */
/* 1         2       3           4       $5           6       $7       8       9          10 */
{0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,


	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,

#endif

	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,


/* 1         2       3           2          4        2         5          2           6        2         $7        2         8         2        9           2         10        2                     2 */
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,
	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303,  0xA08000|0xff030303,

	0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303, 0xA08000|0xff030303
},

};

/*
Description	: wavedata buffer must call this function to init conctrl data,
		  this interface is for 8-bits data TCON
Input		: eink_timing_info -- specify the eink panel timing parameter
Ouput		: timing_buf -- timing para buffer address(virturl address)
Return		: 0 -- success, others -- fail
*/
int init_eink_ctrl_data(unsigned long timing_vaddr)
{
	int ret = 0;
	u32 row, col = 0, row_temp = 0;

	const u32 *p_ctrl_gc_tbl = NULL;
	u32 *p_ctrl_line = NULL;

	u32 wav_width = 0, wav_height = 0;
	u32 hync_len = 0, vync_len = 0;
	u32 h_data_len = 0, v_data_len = 0;

	u32 *point = NULL;
	A13_WAVEDATA *global_ctrl_buffer = NULL;

	A13_WAVEDATA *src = NULL;
	TIMING_INFO *dest = NULL;

	struct eink_panel_info	*panel_info;
	struct timing_info *timing;

	struct eink_manager *mgr = get_eink_manager();

	if (mgr == NULL) {
		sunxi_err(NULL, "%s:Eink Mgr is NULL\n", __func__);
		return -1;
	}

	panel_info = &mgr->panel_info;
	timing = &mgr->timing_info;

	if ((timing_vaddr == 0) || (panel_info == NULL) || (timing == NULL)) {

		sunxi_err(NULL, "%s: input param is null\n", __func__);
		return -EINVAL;
	}

	hync_len = timing->lsl + timing->lbl + timing->lel;
	vync_len = timing->fsl + timing->fbl + timing->fel;
	h_data_len = panel_info->width >> 2;
	v_data_len = panel_info->height;
	wav_width = h_data_len + hync_len;
	wav_height = v_data_len + vync_len;

	global_ctrl_buffer = (A13_WAVEDATA *)kzalloc(wav_width * wav_height *
					sizeof(A13_WAVEDATA), GFP_KERNEL);
	if (global_ctrl_buffer == NULL) {
		sunxi_err(NULL, "%s: alloc memory for global control buffer fail, size=0x%x\n", __func__,
				(unsigned int)(wav_width * wav_height * sizeof(A13_WAVEDATA)));
		return -ENOMEM;
	}

	point = (u32 *)global_ctrl_buffer;
	p_ctrl_gc_tbl = (u32 *)eink_ctrl_tbl_GC16_COMMON[4];
	p_ctrl_line = (u32 *)eink_ctrl_line_index_tbl;

	/* line1--line8 */
	for (row = 0; row < (timing->fsl + timing->fbl); row++) {
		row_temp = *p_ctrl_line++;
		for (col = 0; col < wav_width; col++) {
			*point = eink_ctrl_tbl_GC16_COMMON[row_temp][col];
			point++;
		}
	}

/* p_ctrl_line += 600; */
/* point += 600*258; */

	for (; row < (wav_height - timing->fel); row++) {
		row_temp = *p_ctrl_line++;
/*		for (col = 0; col < (eink_timing_info->lsl +
 *					eink_timing_info->lbl); col++) {
			*point = (*(p_ctrl_gc_tbl + col));
			point++;
		}

		point += h_data_len;
		col += h_data_len;
*/
		for (col = 0; col < wav_width; col++) {
			*point = (*(p_ctrl_gc_tbl + col));
			point++;
		}
	}

	for (; row < wav_height; row++) {
		row_temp = *p_ctrl_line++;
		for (col = 0; col < wav_width; col++) {
			*point = eink_ctrl_tbl_GC16_COMMON[row_temp][col];
			point++;
		}
	}

	src = global_ctrl_buffer;
	dest = (TIMING_INFO *)timing_vaddr;

	for (row = 0; row < wav_height; row++) {
		for (col = 0; col < wav_width; col++) {
			dest->bits.mode = src->bits.mode;
			dest->bits.oeh = src->bits.oeh;
			dest->bits.leh = src->bits.leh;
			dest->bits.sth = src->bits.sth;
			dest->bits.ckv = src->bits.ckv;
			dest->bits.stv = src->bits.stv;
			dest->bits.res0 = 0;/* 3; */
			dest++;
			src++;
		}
	}

	if (global_ctrl_buffer != NULL) {
		kfree(global_ctrl_buffer);
		global_ctrl_buffer = NULL;
	}

	return ret;
}

static s32 timing_ctrl_set_open_func(struct timing_ctrl_manager *mgr,
					EINK_PANEL_FUNC func, u32 delay)
{
	EINK_INFO_MSG("\n");
	if (func) {
		mgr->open_flow.func[mgr->open_flow.func_num].func = func;
		mgr->open_flow.func[mgr->open_flow.func_num].delay = delay;
		mgr->open_flow.func_num++;
	}

	return 0;
}

static s32 timing_ctrl_set_close_func(struct timing_ctrl_manager *mgr,
					EINK_PANEL_FUNC func, u32 delay)
{
	EINK_INFO_MSG("\n");
	if (func) {
		mgr->close_flow.func[mgr->close_flow.func_num].func = func;
		mgr->close_flow.func[mgr->close_flow.func_num].delay = delay;
		mgr->close_flow.func_num++;
	}

	return 0;
}

s32 timing_ctrl_mgr_enable(struct timing_ctrl_manager *mgr)
{
	int ret = 0, i = 0;
	unsigned long flags = 0;

	spin_lock_irqsave(&mgr->tlock, flags);
	if (mgr->enabled) {
		sunxi_warn(NULL, "timing mgr already enable!\n");
		spin_unlock_irqrestore(&mgr->tlock, flags);
		return 0;
	}

	spin_unlock_irqrestore(&mgr->tlock, flags);
#ifdef TIMING_FROM_MEM
	u32 hsync = 0, vsync = 0;
	struct timing_buf_cfg cfg_buf;
	struct timing_info *timing = &mgr->info;
	u32 coor_x = 0, coor_y = 0;

	hsync = timing->lsl + timing->lbl + timing->ldl + timing->lel;
	vsync = timing->fsl + timing->fbl + timing->fdl + timing->fel;
	mgr->timing_size = hsync * vsync;

	mgr->timing_vaddr = eink_malloc(mgr->timing_size, &mgr->timing_paddr);
	if (mgr->timing_vaddr == NULL) {
		sunxi_err(NULL, "%s: timing buf malloc faile\n", __func__);
		ret = -ENOMEM;
		goto timing_buf_err;
	}

	ret = init_eink_ctrl_data((unsigned long)mgr->timing_vaddr);
	if (ret) {
		sunxi_err(NULL, "%s:fail to init ctrl data\n", __func__);
		ret = -EINVAL;
		goto timing_buf_err;
	}
	eink_cache_sync(mgr->timing_paddr, mgr->timing_size);
	EINK_DEBUG_MSG("timing vaddr=0x%p, paddr=0x%p\n", mgr->timing_vaddr, (void *)mgr->timing_paddr);

	save_as_bin_file((__u8 *)mgr->timing_vaddr, "/tmp/timing_test.bin", mgr->timing_size, 0);

	cfg_buf.addr   = mgr->timing_paddr;
	cfg_buf.width  = hsync - 1;
	cfg_buf.pitch  = hsync;
	cfg_buf.height = vsync - 1;

	coor_x = timing->lsl + timing->lbl;
	coor_y = timing->fsl + timing->fbl;
	eink_timing_config_coor(coor_x, coor_y);
	eink_config_timing_buf(&cfg_buf);
#else
	eink_config_timing_param(&mgr->info);
	eink_timing_gen_enable();
#endif
	for (i = 0; i < EINK_GPIO_NUM; i++) {
		if (mgr->eink_gpio_used[i]) {
			eink_sys_gpio_request(&mgr->eink_gpio[i]);
		}
	}

	mgr->open_flow.func_num = 0;/* reset when standby */
	if (mgr->panel_func.cfg_open_flow)
		mgr->panel_func.cfg_open_flow();
	else {
		sunxi_err(NULL, "%s:cfg_open_flow is NULL\n", __func__);
		ret = -EINVAL;
		return ret;
	}

	for (i = 0; i < mgr->open_flow.func_num; i++) {
		if (mgr->open_flow.func[i].func) {
			mgr->open_flow.func[i].func();
			EINK_DEBUG_MSG("open flow:step %d finish, to delay %d\n", i,
			       mgr->open_flow.func[i].delay);
			if (mgr->open_flow.func[i].delay != 0)
				mdelay(mgr->open_flow.func[i].delay);
		}
	}

	spin_lock_irqsave(&mgr->tlock, flags);
	mgr->enabled = 1;
	spin_unlock_irqrestore(&mgr->tlock, flags);
	return ret;
#ifdef TIMING_FROM_MEM
timing_buf_err:
	if (mgr->timing_vaddr)
		eink_free(mgr->timing_vaddr, (void *)mgr->timing_paddr, mgr->timing_size);
	return ret;
#endif
}

int timing_ctrl_mgr_disable(struct timing_ctrl_manager *mgr)
{
	int i = 0;
	unsigned long flags = 0;

	spin_lock_irqsave(&mgr->tlock, flags);
	if (mgr->enabled == 0) {
		sunxi_warn(NULL, "timing mgr already disable!\n");
		spin_unlock_irqrestore(&mgr->tlock, flags);
		return 0;
	}
	spin_unlock_irqrestore(&mgr->tlock, flags);

	mgr->close_flow.func_num = 0;
	if (mgr->panel_func.cfg_close_flow)
		mgr->panel_func.cfg_close_flow();
	else {
		sunxi_err(NULL, "%s:cfg_close_flow is NULL\n", __func__);
		return -1;
	}

	for (i = 0; i < mgr->close_flow.func_num; i++) {
		if (mgr->close_flow.func[i].func) {
			mgr->close_flow.func[i].func();
			EINK_INFO_MSG("close flow:step %d finish, to delay %d\n", i,
			       mgr->close_flow.func[i].delay);
			if (mgr->close_flow.func[i].delay != 0)
				mdelay(mgr->close_flow.func[i].delay);
		}
	}

	for (i = 0; i < EINK_GPIO_NUM; i++) {
		mgr->eink_gpio[i].value = 0;
		eink_sys_gpio_request(&mgr->eink_gpio[i]);
		eink_sys_gpio_release(&mgr->eink_gpio[i]);
	}
#ifdef TIMING_FROM_MEM
	if (mgr->timing_vaddr)
		eink_free(mgr->timing_vaddr, (void *)mgr->timing_paddr, mgr->timing_size);
#endif
	spin_lock_irqsave(&mgr->tlock, flags);
	mgr->enabled = 0;
	spin_unlock_irqrestore(&mgr->tlock, flags);
	return 0;
}

int timing_ctrl_mgr_init(struct init_para *para)
{
	int ret = 0;
	struct timing_ctrl_manager *timing_ctrl_mgr = NULL;

	struct eink_manager *eink_mgr = get_eink_manager();

	if (eink_mgr == NULL) {
		sunxi_err(NULL, "%s:eink_mgr is NULL!\n", __func__);
		return -1;
	}
	timing_ctrl_mgr =
		(struct timing_ctrl_manager *)kmalloc(sizeof(struct timing_ctrl_manager), GFP_KERNEL | __GFP_ZERO);
	if (timing_ctrl_mgr == NULL) {
		sunxi_err(NULL, "%s:timing manager malloc failed!\n", __func__);
		ret = -ENOMEM;
		goto timing_mgr_err;
	}

	memcpy(&timing_ctrl_mgr->info, &para->timing_info, sizeof(struct timing_info));
	memcpy(timing_ctrl_mgr->eink_gpio_used, para->eink_gpio_used, EINK_GPIO_NUM * sizeof(unsigned int));
	memcpy(timing_ctrl_mgr->eink_gpio, para->eink_gpio, EINK_GPIO_NUM * sizeof(struct eink_gpio_cfg));

	timing_ctrl_mgr->enable = timing_ctrl_mgr_enable;
	timing_ctrl_mgr->disable = timing_ctrl_mgr_disable;
	timing_ctrl_mgr->set_open_func = timing_ctrl_set_open_func;
	timing_ctrl_mgr->set_close_func = timing_ctrl_set_close_func;

	timing_ctrl_mgr->enabled = 0;
	eink_mgr->timing_ctrl_mgr = timing_ctrl_mgr;
	g_timing_ctrl_mgr = timing_ctrl_mgr;

	/* init eink panel func */
	eink_panel_init();

	return 0;

timing_mgr_err:
	kfree(timing_ctrl_mgr);
	return ret;
}

s32 eink_set_panel_funcs(char *name, struct eink_panel_func *eink_cfg)
{
	struct timing_ctrl_manager *timing_ctrl_mgr = NULL;
	char primary_key[20], drv_name[32];
	s32 ret = 0;

	EINK_INFO_MSG("PANEL:%s come in!\n", name);

	timing_ctrl_mgr = g_timing_ctrl_mgr;
	if (timing_ctrl_mgr == NULL) {
		sunxi_err(NULL, "set panel funcs NULL hdl!\n");
		return -EINVAL;
	}

	sprintf(primary_key, "eink");

	ret = eink_sys_script_get_item(primary_key, "eink_panel_name",
						     (int *)drv_name, 2);
	EINK_INFO_MSG("syscfg_drv_name %s,  set_panel_name %s\n", drv_name, name);

	if ((ret == 2) && !strcmp(drv_name, name)) {
		memset(&timing_ctrl_mgr->panel_func, 0, sizeof(struct eink_panel_func));
		timing_ctrl_mgr->panel_func.cfg_open_flow = eink_cfg->cfg_open_flow;
		timing_ctrl_mgr->panel_func.cfg_close_flow = eink_cfg->cfg_close_flow;

		return 0;
	}

	return -1;
}
